package gui;

import java.util.List;

/**
 * Interface que deve ser usada pela GUI(JFrame, JDialog, Frame, Dialog, etc...)
 * para tornar o codigo mais flexivel.
 *
 * @author emersonmx
 * @since 0.1
 */
public interface UI {

  /**
   * pega o controlador associado a UI.
   *
   * @return Controlador associado.
   */
  public Controlador getControlador();

  /**
   * define um controlador associado a UI.
   *
   * @param c controlador a ser associado.
   */
  public void setControlador(Controlador c);

  /**
   * Exibe uma mensagem comum.
   *
   * @param mensagem a ser exibida
   */
  public void exibirMensagem(String mensagem);

  /**
   * Exibe uma mensagem de erro.
   *
   * @param mensagem de erro a ser exibida.
   */
  public void exibirMensagemErro(String mensagem);

  /**
   * Mostra um objeto na UI.
   *
   * @param o objeto a ser mostrado.
   */
  public void mostrarObjeto(Object o);

  /**
   * Mostra uma lista de objetos na UI
   *
   * @param l lista a ser mostrada.
   */
  public void mostrarObjetos(List l);
}
